package com.rem.rabbitmq.ee.Aquick;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

/**
 * 生产者
 *
 * @author Rem
 * @date 2021-12-12
 */

public class Producer {

    private final static String QUEUE_NAME = "hello";

    public static void main(String[] args) throws Exception {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("106.14.72.13");
        factory.setPort(5672);
        factory.setUsername("rem");
        factory.setPassword("123456");
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();
        try {
            /**
             *创建队列
             *
             *queue 队列名称
             *durable 队列里的消息是否持久化 (服务重启是否存在) 默认在内存中，
             *exclusive 如果我们声明一个独占队列（仅限于此连接），则为 true (只能有一个消费者)
             * autoDelete 如果我们声明一个自动删除队列，则为 true（服务器将在不再使用时将其删除）
             *arguments 队列的其他属性（构造参数）
             */
            channel.queueDeclare(QUEUE_NAME, false, false, false, null);
            String message = "hello world";
            /**
             *发送消息
             *
             *exchange 发送到哪个交换机 默认交换机 用空表示
             *routingKey 路由键
             *props 消息的其他属性 -路由标头等
             * message 消息内容
             */
            channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
            System.out.println("消息发送完毕");
        } finally {
            channel.close();
            connection.close();
        }

    }
}
